#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMessageBox>
//步骤2添加头文件
#include <QTcpServer>
#include <QTcpSocket>
#include <QHostAddress>
#include <QHostInfo>
//串口需要的头文件
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QCharRef>
#include <QTimer>   //定时器

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();
    void searchCom();                               //遍历串口
    char ConvertHexChar(char ch);
    void String2Hex(QString str,QByteArray &senddata);
    void sendData(int ,int );


private slots:                                      //定义槽函数
    void on_btn_listen_clicked();                   //监听

    void on_btn_close_clicked();                    //关闭

    void on_btn_Com_open_clicked();                 //打开串口

    void on_btn_Com_close_clicked();                //关闭串口

    void newConnected();                            //客户端发起连接时触发

    void readData();                                //连接上来的客户端发送数据的时候

private:
    Ui::Widget *ui;
    QTcpServer *tcpServr;                           //负责服务器相关
    QTcpSocket *tcpSocket;                          //实现和客户端的通信
    QSerialPort *myport;
    QTimer  *timer;
    QByteArray dataArr;                             //接受数据缓冲区
};

#endif                                              // WIDGET_H
